001    /***********************************************************************************************
002     *              Tekijä:                 Jukka Salminen
003     *              Opiskelijanumero:       i79947
004     *              Email:                  jukka.salminen@uwasa.fi
005     *              Tekoaika:               23.9.2002
006     *              Kurssi/vuosi:           Ohjelmoinnin jatkokurssi/kevät 2002
007     *              Työn tunnus:            Harjoitustyö: Taulukkoeditori web-sivulle
008     ***********************************************************************************************
009     * mainFrame-luokka
010     *====================
011     * Tämän luokka on testisovelluksen graafinen käyttöliittymä.
012     * Ominaisuuksiltaan tämä on identtinen JSApplet-luokan kanssa.
013     *
014     * Metodit
015     *--------
016     * iniComponents        Luo graafisen käyttöliittymän tarvitsemat objektit.
017     *
018     * Jäsenmuuttujat (hierarkian mukaan järjestettynä)
019     * ------------------------------------------------
020     * m_sURL
021     * ------
022     * String               URL tai tiedosto, josta data haetaan
023     *
024     * Pääikkuna jaetaan kolmeksi JSPanel-luokasta peritytyväksi paneeliksi
025     * m_oPanel, m_oPanel2 ja m_oPanel3. Nämä asetellaan päällekkäin Boxlayoutilla.
026     * Paneeleissa olevat painonapit järjestetään Flowlayoutilla
027     * ===============================================================================
028     * m_oPanel sisältää objektit
029     * --------------------------
030     *  m_oScrollpane
031     * --------------
032     * JScrollPane                 Container-objekti taulukolle m_oTable
033     *
034     * m_oTable
035     * --------
036     * JSTable                     Taulukko, jota editoidaan
037     * ===============================================================================
038     * m_oPanel2 sisältää JSButton-objektit
039     * ------------------------------------
040     *  m_AddNewColumnButton                Sarakkeen lisäys
041     *  m_RemoveColumnButton                Editoitavan sarakkeen poisto
042     *  m_SaveButton                        Koko taulukon tallennus
043     * ===============================================================================
044     * m_oPanel2 sisältää JSButton-objektit
045     * ------------------------------------
046     *  m_InsertRowButton                   Rivin lisäys väliin
047     *  m_AddRowButton                      Rivin lisäys loppuun
048     *  m_RemoveRowButton                   Editoitavan rivin poisto
049     * ===============================================================================
050     * Paikalliset muuttujat
051     *----------------------
052     *  Ei ole
053     */
054    
055    package forms;
056    import javax.swing.*;
057    import java.awt.event.*;
058    import classes.*;
059    import tables.*;
060    /**
061     *
062     * @author  Jukka
063     */
064    public class mainFrame extends classes.JSFrame
065    {
066            /** Creates new form JSFrame */
067            public mainFrame()
068            {
069                    initComponents();
070            }
071            public mainFrame(String sURL)
072            {
073                    setURL(sURL);
074                    initComponents();
075            }
076            
077            /** This method is called from within the constructor to
078             * initialize the form.
079             */
080        private void initComponents()//GEN-BEGIN:initComponents
081        {
082            m_oPanel = new forms.Panel1();
083            m_oScrollPane = new javax.swing.JScrollPane();
084            m_oTable = new tables.JSTable();
085            m_oPanel2 = new forms.Panel1();
086            m_AddNewColumnButton = new classes.JSActionButton();
087            JSAction loAction = new TableAction(m_oTable);
088            m_AddNewColumnButton.addAction(loAction);
089            m_RemoveColumnButton = new classes.JSActionButton();
090            m_RemoveColumnButton.addAction(loAction);
091            m_SaveButton = new classes.JSActionButton();
092            m_SaveButton.addAction(loAction);
093            m_oPanel3 = new forms.Panel1();
094            m_InsertRowButton = new classes.JSActionButton();
095            m_InsertRowButton.addAction(loAction);
096            m_AddRowButton = new classes.JSActionButton();
097            m_AddRowButton.addAction(loAction);
098            m_RemoveRowButton = new classes.JSActionButton();
099            m_RemoveRowButton.addAction(loAction);
100    
101            getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.Y_AXIS));
102    
103            setName("mainFrame");
104            addWindowListener(new java.awt.event.WindowAdapter()
105            {
106                public void windowClosing(java.awt.event.WindowEvent evt)
107                {
108                    exitForm(evt);
109                }
110            });
111    
112            m_oScrollPane.setBorder(null);
113            m_oScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
114            m_oScrollPane.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
115            m_oScrollPane.setMaximumSize(new java.awt.Dimension(0, 0));
116            m_oScrollPane.setPreferredSize(new java.awt.Dimension(550, 300));
117            m_oScrollPane.setAutoscrolls(true);
118            m_oTable.setModel(new tables.JSTableModel(m_sURL));
119            m_oTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
120            m_oTable.setFont(new java.awt.Font("Dialog", 0, 14));
121            m_oScrollPane.setViewportView(m_oTable);
122    
123            m_oPanel.add(m_oScrollPane);
124    
125            getContentPane().add(m_oPanel);
126    
127            m_AddNewColumnButton.setToolTipText("Lis\u00e4\u00e4 uusi sarake");
128            m_AddNewColumnButton.setLabel("AddColumn");
129            m_AddNewColumnButton.setName("");
130            m_oPanel2.add(m_AddNewColumnButton);
131    
132            m_RemoveColumnButton.setText("RemoveColumn");
133            m_RemoveColumnButton.setToolTipText("Poista sarake");
134            m_oPanel2.add(m_RemoveColumnButton);
135    
136            m_SaveButton.setText("Save");
137            m_SaveButton.setToolTipText("Save");
138            m_oPanel2.add(m_SaveButton);
139    
140            getContentPane().add(m_oPanel2);
141    
142            m_InsertRowButton.setText("InsertRow");
143            m_InsertRowButton.setToolTipText("InsertRow");
144            m_oPanel3.add(m_InsertRowButton);
145    
146            m_AddRowButton.setText("AddRow");
147            m_AddRowButton.setToolTipText("AddRow");
148            m_oPanel3.add(m_AddRowButton);
149    
150            m_RemoveRowButton.setToolTipText("RemoveRow");
151            m_RemoveRowButton.setActionCommand("RemoveRow");
152            m_RemoveRowButton.setLabel("RemoveRow");
153            m_oPanel3.add(m_RemoveRowButton);
154    
155            getContentPane().add(m_oPanel3);
156    
157            pack();
158        }//GEN-END:initComponents
159            
160            /** Exit the Application */
161        private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
162                    System.exit(0);
163        }//GEN-LAST:event_exitForm
164    
165            public void setURL(String sURL)
166            {
167                    this.m_sURL = sURL;
168            }       
169            
170        // Variables declaration - do not modify//GEN-BEGIN:variables
171        private classes.JSActionButton m_RemoveColumnButton;
172        private classes.JSActionButton m_AddRowButton;
173        private classes.JSActionButton m_AddNewColumnButton;
174        private tables.JSTable m_oTable;
175        private forms.Panel1 m_oPanel3;
176        private forms.Panel1 m_oPanel2;
177        private forms.Panel1 m_oPanel;
178        private classes.JSActionButton m_RemoveRowButton;
179        private javax.swing.JScrollPane m_oScrollPane;
180        private classes.JSActionButton m_InsertRowButton;
181        private classes.JSActionButton m_SaveButton;
182        // End of variables declaration//GEN-END:variables
183    
184            private static String m_sURL = "http://localhost/labonet/XMLTable.hb";
185            
186    }